package com.leftheart.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.leftheart.utils.DateUtils;
import com.leftheart.utils.Utils;
import com.leftheart.entity.User;
import com.leftheart.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Date;
import java.util.List;

@Controller
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("/users/list")
    public String queryAllUser(Model model){
        List<User> users = userService.queryAllUser();
        model.addAttribute("users",users);
        return "user/list";
    }
    @PostMapping("/users/tologin")
    public String tologin(){
        return "index";
    }

    @RequestMapping("/go/adduser")
    public String goAdduser(){
        return "user/adduser";
    }

    @PostMapping("/users/adduser")
    public String addUser(User user,String userName ,String userPwd) throws JsonProcessingException {
        user.setReTime();
        userService.addUser(userName,userPwd,new Utils().setAccounts());
        return "redirect:/users/list";
    }
//    @RequestMapping("/update/toupdate")
//    public String toUpdate(){
//        return "user/updateJump";
//    }
//    @PostMapping("/update/updateJump/{userId}")
//    public String updateJump(User user,Model model){
//        int accounts = userService.getAccounts(user);
//        model.addAttribute("accounts",accounts);
//        return "redirect:/update/updateJump2";
//    }
//    @PostMapping("/update/updateJump2")
//    public String updateJump2(){
//
//        return "user/update";
//    }
//    @PostMapping("/update/update")
//    public String update(User user){
//        userService.updatePwd(user);
//        return "redirect:/users/tologin";
//    }
    @RequestMapping("/update/toupdate")
    public String toupdate(){
        userService.queryAllUser();
        return "user/update";
    }

    @RequestMapping("/update/return")
    public String returnLogin(){
        return "index";
    }

    @PostMapping("/update/updateUser")
    public String updateUser(User user){
        userService.updateUser(user);
        return "index";
    }

//    @PostMapping("/update/update")
//    public String update(User user){
//        userService.updateByPrimaryKeySelective();
//        return "user/update";
//    }

}
